/**
 * @(#)ChannelTaskService.java 2016年11月8日
 * Copyright(C) 2016 ZHEXIN IT CO.,LTD. All rights reserved.
 */
package org.jsbd.boss.service;

import org.jsbd.boss.bto.HttpResult;
import org.jsbd.boss.domian.SimulatorInfoVo;
import org.jsbd.boss.domian.channel.BaseResultVo;
import org.jsbd.boss.domian.channel.RetentTaskVo;
import org.jsbd.boss.domian.channel.SmsSyncVo;

/**
 * 渠道刷量任务选择
 * 
 * @author <a href="mailto:xupengcheng@zhexinit.com" >徐鹏程</a>
 * @version 1.0.0
 */
public interface IChannelTaskService {

	/**
	 * 
	 * getTask:渠道任务选择，新增、留存
	 * 
	 * @author <a href="mailto:xupengcheng@zhexinit.com" >徐鹏程</a>
	 * @param simulatorInfo
	 * @return
	 * @throws Exception
	 */
	public BaseResultVo getTask(SimulatorInfoVo simulatorInfo) throws Exception;

	/**
	 *
	 * smsTask:用户下发短信
	 *
	 * @author <a href="mailto:xupengcheng@zhexinit.com" >徐鹏程</a>
	 * @return
	 * @throws Exception
	 */
	public BaseResultVo smsTask(String result) throws Exception;

	/**
	 * 
	 * syncSmsTask:同步sdk发送结果
	 * 
	 * @author <a href="mailto:xupengcheng@zhexinit.com" >徐鹏程</a>
	 * @param orderId
	 * @param resultCode
	 * @throws Exception
	 */
	public BaseResultVo syncSmsTask(String orderId, String resultCode) throws Exception;

	BaseResultVo sendSms(HttpResult httpResult) throws Exception;

	/**
	 * 
	 * syncRetentTask:留存任务同步
	 * 
	 * @author <a href="mailto:xupengcheng@zhexinit.com" >徐鹏程</a>
	 * @param taskInfo
	 * @return
	 * @throws Exception
	 */
	public BaseResultVo syncRetentTask(RetentTaskVo taskInfo) throws Exception;

	/**
	 * syncSmsTask:同步短信
	 * 
	 * @author <a href="mailto:xupengcheng@zhexinit.com" >徐鹏程</a>
	 * @param smsVo
	 * @return
	 */
	public BaseResultVo syncSmsTask(SmsSyncVo smsVo) throws Exception;

	public BaseResultVo syncSmsCode(String orderId, String resultCode, String sms);

	public void removeImsiRecord(String imsi);

}
